/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller.insert;

import hibernate.HibernateUtil;
import hibernate.dao.Cliente;
import hibernate.dao.EnderecoCliente;
import hibernate.dao.TelefoneCliente;
import org.hibernate.Session;

/**
 *
 * @author Users
 */
public class ClienteController {

    private ClienteListener mClienteListener = null;

    public ClienteController() {
        this(null);
    }

    public ClienteController(ClienteListener pClienteListener) {
        mClienteListener = pClienteListener;
    }

    public void InserirCleinte(String cNome, String cCNPJ, String cEmail, String cTelefone,
            String cCelular, String cCep, String cCidade, String cNumero, String cRua, String cEstado) {
        try {
            
            EnderecoCliente edcl = new EnderecoCliente();
            edcl.setEndCliCep(cCep);
            edcl.setEndCliCidade(cCidade);
            edcl.setEndCliNumero(Integer.parseInt(cNumero));
            edcl.setEndCliRua(cRua);
            edcl.setEndCliEstado(cEstado);
            
            Cliente cl = new Cliente();
            cl.setCliNome(cNome);
            cl.setCliCnpj(cCNPJ);
            cl.setCliEmail(cEmail);
            cl.setCliFlag(Boolean.TRUE);
            cl.setEnderecoCliente(edcl);

            TelefoneCliente telcl = new TelefoneCliente();
            telcl.setCliente(cl);
            telcl.setTelCliNumero(cTelefone);
            telcl.setTelCliTipo("Telefone");
            TelefoneCliente celcl = new TelefoneCliente();
            celcl.setCliente(cl);
            celcl.setTelCliNumero(cCelular);
            celcl.setTelCliTipo("Celular");
            
            Session a = HibernateUtil.getSessionFactory().getCurrentSession();
            a.beginTransaction();
            a.save(cl);
            a.save(edcl);
            a.save(telcl);
            a.save(celcl);
            a.getTransaction().commit();
            mClienteListener.onClienteSuccess("Cliente inserido com Sucesso! ");
        } catch (Exception e) {
            mClienteListener.onClienteError(e.getMessage());
        }
    }

    public void setClienteListener(ClienteListener pClienteListener) {
        mClienteListener = pClienteListener;
    }
}
